#!/usr/bin/env python
#coding=utf-8

'''检测环境的指定目录是否存在文件并且将结果通通过企业微信发送至对应的应用中 '''

import  getfile
import socket
#import  Timer#pyintaller# 打包出现问题，正常执行脚本正常是·
import  os
import schedule
import time
import datetime


#--------------------------------
# 连接socket服务端进行通信
#--------------------------------
def  conn_socket(message):
    # 1、创建socket通信对象
    clientSocket = socket.socket()

    # 2、使用正确的ip和端口去链接服务器
    #clientSocket.connect(('localhost', 4434))
    clientSocket.connect(('10.14.10.107', 4434))

    # 3、客户端与服务器端进行通信
    # 给socket服务器发送信息
    clientSocket.send(message.encode('utf-8'))

    # 接收服务器的响应(服务器回复的消息)
    recvData = clientSocket.recv(1024).decode('utf-8')
    print('客户端收到服务器回复的消息:%s' % (recvData))

    # 4、关闭socket对象
    clientSocket.close()

#--------------------------------
# 凭证文件的检测并组织发送信息
#--------------------------------
def getmessage():
    try:
        #path_RMB = r'D:\360安全浏览器下载\weworkapi_python-master\api\src'
        #path_USD = r'D:\360安全浏览器下载\weworkapi_python-master\api\examples'
        #获取当前时间
        now = datetime.datetime.now()
        ts=now.strftime('%Y-%m-%d %H:%M:%S')
        conn_socket('blackeye进行NC凭证巡检，当前时间:%s'%(ts))
        #人民币凭证存放目录
        path_RMB=r'D:\voucherZSZT\pz\RMB'
        #美元凭证存放目录
        path_USD=r'D:\voucherZSZT\pz\USD'
        #获取路径下的文件的名称和数量
        files, num = getfile.check_file(path_RMB)
        if num > 0:
            print('人民币的相关数据没有处理')
            print('相关的文件如下：')
            str = ''
            for temp in files:
                str = str + temp + '，'
            conn_socket('当日存在未处理的人民币凭证文件，相关文件如下：')
            conn_socket(str)
        else:
            conn_socket('当日人民币凭证 已经处理完毕')
        files2, num2 = getfile.check_file(path_USD)
        if num2 > 0:
            print('美元的相关数据没有处理')
            print('相关的文件如下：')
            print(files2)
            str = ''
            for temp in files2:
                str = str + temp + '，'
            conn_socket('当日存在未处理的美元凭证文件，相关文件如下：')
            conn_socket(str)
        else:
            conn_socket('当日美元凭证已经处理完毕')
    except Exception as err:
        print('产生异常')
        print(err)


# --------------------------------
# 自动任务设置
#由于Timer中的定时任务在pyinstaller打包之后一直出现问题，所以改用其他模块进行任务的定时执行
# --------------------------------
def exectask(func):
    #清空任务
    schedule.clear()
    #创建一个按秒间隔执行任务
    #schedule.every(1).seconds.do(func)
    #创建一个按5秒间隔执行任务
    schedule.every(10).seconds.do(func)
    #创建一个按天执行的任务，时间是每天的17:44
    schedule.every(1).day.at("17:44").do(func)
    #循环等待
    while True:
        schedule.run_pending()
        time.sleep(1)

if __name__ == '__main__':
    os.system("title NC凭证处理情况前置检测")
    #getmessage(path_RMB, path_USD)
    #Timer.setTime(getmessage,5,[])
    exectask(getmessage)


